home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b2.d64 / entermarks < prev    next >
Text File  |  2007-02-28  |  3KB  |  141 lines

  1. 0010 //OLDHAM'S GRAMMAR SCHOOL//
  2. 0020 //PROGRAM TO ADMINISTER PUPILS' MARKS//
  3. 0030 //WRITTEN BY CHRIS BORGE IN CBM COMAL-80//
  4. 0040 //THIS VERSION: OCT. 1981//
  5. 0050 //THIS PART: TO ENTER PUPILS' MARKS//
  6. 0060 //
  7. 0070 MAX:=8
  8. 0080 DIM NAME$(MAX) OF 20, ANSW$ OF 11
  9. 0090 DIM MARK(MAX,3), SUBJ$(3) OF 11, KEY'(MAX)
  10. 0100 DIM SPACES$ OF 39
  11. 0105 //*
  12. 0110 SUBJ$(1):="ENGLISH"
  13. 0130 SUBJ$(2):="MATHEMATICS"
  14. 0140 SUBJ$(3):="FRENCH"
  15. 0150 SPACES$(1:39):=""
  16. 0180 //
  17. 0190 STARTSYSTEM
  18. 0200 //
  19. 0210 //* MAINLINES *//
  20. 0220 SUBJNO:=0
  21. 0230 REPEAT 
  22. 0240 PRINT CHR$(147) //CLEAR SCREEN
  23. 0250 FIELD(8,15)
  24. 0260 PRINT "1=ENTER MARKS"
  25. 0270 PRINT "2=LIST MARKS"
  26. 0280 PRINT "3=STOP PROGRAM"
  27. 0290 PRINT 
  28. 0300 INPUT "> ": JOBCODE
  29. 0310 IF JOBCODE=1 THEN ENTERMARKS
  30. 0320 IF JOBCODE=2 THEN PRINTOUT
  31. 0330 IF JOBCODE=3 THEN STOPSYSTEM
  32. 0340 UNTIL FALSE //FOREVER
  33. 0350 //
  34. 0360 PROC ENTERMARKS 
  35. 0370 TAKEIN("CLASS")
  36. 0380 TAKEIN("SUBJECT")
  37. 0390 PRINT CHR$(147) //CLEAR SCREEN
  38. 0400 PRINT "YOU MAY NOW ENTER PUPILS' MARKS"
  39. 0405 PRINT "IN ",SUBJ$(SUBJNO)
  40. 0410 PRINT 
  41. 0420 FOR PUPILNO:=1 TO MAX DO
  42. 0430 IF NAME$(PUPILNO)<>"" THEN
  43. 0440 TAKEIN("MARK")
  44. 0450 ENDIF 
  45. 0460 ENDFOR PUPILNO
  46. 0470 ENDPROC ENTERMARKS
  47. 0480 //
  48. 0490 PROC TAKEIN(MATTER$) 
  49. 0500 REPEAT 
  50. 0510 FIELD(8,15)
  51. 0520 CASE MATTER$ OF
  52. 0530 WHEN "CLASS"
  53. 0540 INPUT "CLASS (8,9,10): ": CLASS
  54. 0550 WHEN "SUBJECT"
  55. 0560 PRINT "ENTER NAME OF SUBJECT:"
  56. 0570 PRINT "(ENGLISH, MATHEMATICS, FRENCH)",
  57. 0580 INPUT "> ": ANSW$
  58. 0590 WHEN "MARK"
  59. 0600 PRINT NAME$(PUPILNO),TAB(30),": ",
  60. 0610 INPUT "": THISMARK
  61. 0620 ENDCASE 
  62. 0630 CONTROL
  63. 0640 UNTIL OK
  64. 0650 PRINT CHR$(147)
  65. 0660 ENDPROC TAKEIN
  66. 0670 //
  67. 0680 PROC CONTROL 
  68. 0690 CASE MATTER$ OF
  69. 0700 WHEN "CLASS"
  70. 0710 OK:=(CLASS=8)
  71. 0720 LACKING:=(CLASS=9 OR CLASS=10)
  72. 0730 WHEN "SUBJECT"
  73. 0740 I:=1
  74. 0750 WHILE ANSW$<>SUBJ$(I) AND I<3 DO
  75. 0754 I:=I+1
  76. 0758 ENDWHILE 
  77. 0760 OK:=ANSW$=SUBJ$(I); SUBJNO:=I
  78. 0770 WHEN "MARK"
  79. 0780 OK:=(0<=THISMARK AND THISMARK<=5)
  80. 0790 IF OK THEN MARK(PUPILNO,SUBJNO):=THISMARK
  81. 0800 ENDCASE 
  82. 0810 IF NOT OK THEN ERROR(4)
  83. 0820 ENDPROC CONTROL
  84. 0830 //
  85. 0840 //
  86. 0850 PROC ERROR(NO) 
  87. 0860 FIELD(1,3)
  88. 0870 PRINT "ERROR!"
  89. 0880 //
  90. 0890 //NOT FINISHED//
  91. 0900 //
  92. 0910 ENDPROC ERROR
  93. 0920 //
  94. 0930 //
  95. 0940 PROC FIELD(L1,L2) 
  96. 0950 SCREEN(L1,1)
  97. 0960 FOR I:=1 TO L2-L1+1 DO PRINT SPACES$
  98. 0970 SCREEN(L1,1)
  99. 0980 PRINT 
  100. 0990 ENDPROC FIELD
  101. 1000 //
  102. 1010 PROC SCREEN(ROW,COL) 
  103. 1020 PRINT CHR$(19) //CURSOR HOME
  104. 1030 FOR I:=1 TO ROW DO PRINT  //DOWN
  105. 1035 FOR I:=1 TO COL-1 DO PRINT CHR$(29), //RIGHT
  106. 1040 ENDPROC SCREEN
  107. 1050 //
  108. 1060 PROC STARTSYSTEM 
  109. 1070 OPEN FILE 2,"MARKBOOKS",READ
  110. 1080 FOR PUPILNO:=1 TO MAX DO
  111. 1090 READ FILE 2: NAME$(PUPILNO)
  112. 1100 FOR SUBJNO:=1 TO 3 DO READ FILE 2: MARK(PUPILNO,SUBJNO)
  113. 1110 ENDFOR PUPILNO
  114. 1120 CLOSE
  115. 1130 ENDPROC STARTSYSTEM
  116. 1140 //
  117. 1150 PROC STOPSYSTEM 
  118. 1160 OPEN FILE 2,"@0:MARKBOOKS",WRITE
  119. 1170 FOR PUPILNO:=1 TO MAX DO
  120. 1180 WRITE FILE 2: NAME$(PUPILNO)
  121. 1190 FOR SUBJNO:=1 TO 3 DO WRITE FILE 2: MARK(PUPILNO,SUBJNO)
  122. 1200 ENDFOR PUPILNO
  123. 1210 CLOSE
  124. 1220 STOP 
  125. 1230 ENDPROC STOPSYSTEM
  126. 1240 //
  127. 1250 PROC PRINTOUT 
  128. 1260 IF SUBJNO=0 THEN TAKEIN("SUBJECT")
  129. 1270 PRINT CHR$(147) //CLEAR
  130. 1280 PRINT "MARKS IN ",SUBJ$(SUBJNO),":"
  131. 1290 PRINT 
  132. 1300 FOR PUPILNO:=1 TO MAX DO
  133. 1310 IF NAME$(PUPILNO)<>"" THEN
  134. 1320 PRINT PUPILNO,". ",NAME$(PUPILNO),":",TAB(25),
  135. 1330 PRINT MARK(PUPILNO,SUBJNO)
  136. 1340 ENDIF 
  137. 1350 ENDFOR PUPILNO
  138. 1360 PRINT 
  139. 1370 INPUT "TYPE RETURN TO CONTINUE ": ANSW$
  140. 1380 ENDPROC PRINTOUT
  141.